const NodeMediaServer = require("node-media-server"); // 这里版本选2.7.0
const config = {
  rtmp: {
    port: 1935, // RTMP 服务器监听的端口
    chunk_size: 60000, // 数据分块大小
    gop_cache: true, // 开启GOP缓存，减少播放延迟
    ping: 30, // 服务器发送 ping 包的间隔（秒），用于保持连接
    ping_timeout: 60, // 客户端无响应超时时间（秒），超时后断开连接
  },
  http: {
    port: 8000, // HTTP 服务器端口（用于 HLS/DASH 访问）
    allow_origin: "*", // 允许跨域访问（* 表示允许所有域名）
    mediaroot: "./media", // 媒体文件存储路径（HLS/DASH 切片存放位置）
  },
  trans: {
    ffmpeg: "/opt/homebrew/bin/ffmpeg", // FFmpeg 可执行文件路径
    tasks: [
      {
        app: "live", // 应用名称（推流 URL 中的路径，如 `rtmp://server/live/stream`）
        hls: true, // 启用 HLS 输出
        // hls_time 是切片长度 & hls_list_size 有几个切片 & delete_segments 删除旧切片
        hlsFlags: "[hls_time=2:hls_list_size=20:hls_flags=delete_segments]",
        dash: false, // 禁用 DASH 输出
      },
    ],
  },
};
const nms = new NodeMediaServer(config);
nms.run();

// http://localhost:8000/admin/
// http://localhost:8000/live/stream/index.m3u8
// http://localhost:8000/live/stream.flv
